package com.woniuxy.consumer.configuration;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

/**
 * @Author zhangyong
 * @Date 2021/8/2 0002
 */
@Configuration
public class RpcConfiguration {
    //RestTemplate
    @Bean
    @LoadBalanced //开启RestTemplate负载均衡策略 默认轮询
    public RestTemplate restTemplate(){
        //设置ribbon的策略：超时时间，多长时间没有被调用
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        //
        factory.setReadTimeout(1000);   //  读取数据的超时时间，单位毫秒，在1秒内没有得到数据就超时
        factory.setConnectTimeout(2000);    // 连接超时，连接被调用方

        return new RestTemplate(factory);
    }

    //设置负载均衡策略  全局设置
//    @Bean
//    public IRule rule(){
//        return new RandomRule();//随机策略
//    }
}
